package gdr.window;

import gdr.dev.SuperGDR9000;
import gdr.battle.graphics.HumanGraphicalClient;
import gdr.battle.data.map.*;


public class KeyManagerMoveCursor extends KeyManager{
	protected HumanGraphicalClient humanClient;
	
	public KeyManagerMoveCursor(SuperGDR9000 gdr, HumanGraphicalClient humanClient){
		super(gdr);
		this.humanClient = humanClient;
	}

	protected void key_pressed_UP(){
		humanClient.getCoordinate().getCenter().setY(
				Math.max(humanClient.getCoordinate().getCenter().getY()-1, 0));
		centraZ();
	}
	/** tasto premuto SINISTRA*/
	protected void key_pressed_LEFT(){
		humanClient.getCoordinate().getCenter().setX(
								Math.max(humanClient.getCoordinate().getCenter().getX()-1, 0));
		centraZ();
	}
	/** tasto premuto DESTRA*/
	protected void key_pressed_RIGHT(){
		humanClient.getCoordinate().getCenter().setX(
								Math.min(humanClient.getCoordinate().getCenter().getX()+1, 
										humanClient.getContainer().getData().getMap().getWidth()-1));
		centraZ();
	}
	/** tasto premuto GIU'*/
	protected void key_pressed_DOWN(){
		humanClient.getCoordinate().getCenter().setY(
								Math.min(humanClient.getCoordinate().getCenter().getY()+1, 
										humanClient.getContainer().getData().getMap().getHeight()-1));
		centraZ();
	}
	
	protected void centraZ(){
		humanClient.getCoordinate().getCenter().setZ(
				humanClient.getContainer().getData().getMap().getBattleMapUnit(
						new Position(humanClient.getCoordinate().getCenter().getX(),humanClient.getCoordinate().getCenter().getY(),0)
				).getPos().getZ());
	}
}
